const express = require('express')
const route = express.Router()
const path = require('path')
//引入数据库文件
const advModel = require('../db/model/addAdvModel')
//引入权限校验文件
const isLoginMiddle = require('../middleware/isLoginMiddle')
//引入图片转码工具
const formidable = require('formidable')


//添加图片接口
route.post('/addAdv', isLoginMiddle, (req, res) => {
  //console.log('测试');
  //formidable调用,可以接受fromData格式中携带的文件,配置对象中可以配置文件存储的位置和添加后缀名
  const form = formidable({
    //接收到文件以后,存放的位置
    uploadDir: path.resolve(__dirname, "../upload"),
    //保持文件后缀名
    keepExtensions: true
  })
  //调用formidable方法后, 得到一个form对象, form对象的parse方法接受req对象进行解析, 解析完成后调用回调函数
  //回调函数接受3个参数,第一个是错误捕获,第二是除文件以外所有的参数组成的对象,第三个参数是上传的文件详情
  form.parse(req, async (err, parames, file) => {
    //从解析的prames拿到前台的数据
    const {
      advTitle,
      advType,
      advOrder
    } = parames

    try {
      //向数据库添加数据
      await advModel.create({
        advTitle,
        advType,
        advOrder,
        advHref: '/upload/' + file.advPic.newFilename,
        addTime: new Date().toLocaleString()
      })
      return res.send({
        code: 10000,
        mesage: '添加广告成功',
        data:null
      })
    } catch (e) {
      console.log('添加广告失败',e.message);
      return res.send({
        code:10001,
        mesage:'添加广告失败'+e.message,
        data:null
      })
    }
  })
})


//暴露
module.exports = route